"""
犯法：类里面的函数 就是方法
1.静态方法 ： 放在类下面的普通函数，和类没什么关系
    静态方法定义 ：  @staticmethod（用不上 self 时的函数）
            调用  ： self.方法   实例。方法     类名。方法(因为是类里面的方法，类当然可以调用)

2.类方法：  @classmethod
            实例。方法     类名。方法(因为是类里面的方法，类当然可以调用)
"""

# 类方法： 主要用来  做备用的构造函数
# 实例方法用的最多
# 静态方法：提示的时候再用静态方法 可能因为self没用？
import os
import string
from time import time


class Dalao:
    favor = "python"

    def __init__(self,name):
        self.name = name
    def myoffer(self,money,food):
        #d 调用方法，self.方法
        self.eat(food)
        print('上面的属性')

        #静态方法调用，一样要加self
        self.staticm('latiao')

    def eat(self,food):
        print('吃{}'.format(food))

    # 静态方法
    @staticmethod
    def staticm(food):
        print("静态方法")



    #类方法
    @classmethod
    def code(cls):
        #类里面调用 实例方法（只能实例化再调用
        dalao = Dalao('jj')

        # 类方法的cls  指向类本身
        print("{}".format(cls.favor))


dalao = Dalao('jixiang')
dalao.myoffer('40k','辣条')
print(dalao.name,"2222")
#静态方法调用 不需要实例化对象
# dalao.staticm('latiao')
# Dalao.staticm('latiao')

#3. 类方法的调用    类方法的cls  指向类本身
# Dalao.code()
dalao.code()

#report = time.strftime('%y%m%d',time.localtime())
print(os.path.basename(__file__))

print( string.ascii_uppercase + string.ascii_lowercase + string.digits)
